php artisan make:job Usermailer
1.全域 dispatch() 方法
$userMailer = new UserMailer(3);
\App\Jobs\Usermailer::dispatch($userMailer);
php artisan queue:work
queue:work 參數
失敗例外處理
public function handle() {
// 判斷該 Jobs 已執行 5 次
if ( $this->attempts() > 5 ) {
// ... 要執行的動作
// e.g. 移至執行失敗資料表
}
}
// 執行失敗會會移至 failed 資料表中
public function failed() {
// ... 失敗要做的事情
}
public function boot() {
Queue::failing(function ( JobFailed $event ) {
// ... 要做的事情
}
}
# 顯示失敗的 job 清單
php artisan queue:failed
# 使用 ID 重新執行失敗 Job
php artisan queue:retry 9
# 重新執行所有失敗 Job
php artisan queue:retry all
# 刪除失敗 Job
php artisan queue:forget 5
# 刪除所有失敗的 Job
php artisan queue:flush
控制 queue
if ( false ) {
$this->release(5);
}